#ifndef TIMED_MULTISET_PROXY_H
#define TIMED_MULTISET_PROXY_H

#include "../types/timedmultiset.h"
#include "abstracttypeproxy.h"

#include <QtScript/QScriptValue>

namespace wfnet
{

class TimedMultisetProxy : public AbstractTypeProxy
{
    Q_OBJECT
public:
    Q_INVOKABLE TimedMultisetProxy(QObject* parent = 0);
    TimedMultisetProxy(const TimedMultisetProxy& proxy);
    ~TimedMultisetProxy();

    void setValue(const QVariant& value);
    const core::Type* getValue() const;

    Q_INVOKABLE QScriptValue add(const QScriptValue& other);
    Q_INVOKABLE QScriptValue sub(const QScriptValue& other);
    Q_INVOKABLE QScriptValue mul(const QScriptValue& other);

    Q_INVOKABLE QScriptValue lessOrEqual(const QScriptValue& other);

    void setIdentity(const core::Type& type);

public:
    static const QString NAME;

private:
    TimedMultiset m_value;
};

} // namespace wfnet

Q_DECLARE_METATYPE(wfnet::TimedMultisetProxy)

#endif
